//
//  WBTitleButton.swift
//  Weibo
//
//  Created by cc on 10/12/17.
//  Copyright © 2017 cc. All rights reserved.
//

import UIKit

class WBTitleButton: UIButton {
    
    //重载构造函数
    // - 如果title是nil，就显示 `首页`
    // - 不为nil就显示title 和 箭头图像
    @objc init(title: String?) {
        super.init(frame: CGRect())
       
        //1. 判断title是否为nil
        if title == nil {
            setTitle("首页", for: [])
        } else {
            setTitle(title! + " ", for: [])
            
            //设置图像
            setImage(UIImage(named: "navigationbar_arrow_down"), for: [])
            setImage(UIImage(named: "navigationbar_arrow_up"), for: .selected)
        }
        
        
        //2.设置字体和颜色
        titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
        setTitleColor(UIColor.darkGray, for: [])
        
        //3. 设置大小
        sizeToFit()
        
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
    /// 重新布局子视图
    override func layoutSubviews() {
        super.layoutSubviews()
        
        //判断label 和imageView 是否同时存在
        guard let titleLabel = titleLabel, let imageView = imageView else {
            return
        }
        
        print("\(titleLabel) \(imageView)")
        
        //将 label的 x 向左移动 imageView 的宽度
//        titleLabel.frame = titleLabel.frame.offsetBy(dx: -imageView.bounds.width, dy: 0)
        //OC中不允许直接修改结构体内部的值
        //Swift中可以直接修改
        titleLabel.frame.origin.x = 0
        //将 imageView 的x 向右 移动 label 的宽度
//        imageView.frame = imageView.frame.offsetBy(dx: titleLabel.bounds.width, dy: 0)
        imageView.frame.origin.x = titleLabel.bounds.width
        
    }
    

}
